const express = require('express')
const app = express()

const fs = require("fs")
const path = require('path');

// 解析文件扩展名
const mime = require('mime-types');
// 启动命令 node .\app

// req.query  req.body为请求接口时用户端传递的参数  
app.get('/file', (req, res) => {
  // 假设我们的word文档文件就存放在这个doc目录里面
  let docxUrl = './新建 XLSX 工作表.xlsx'

  // 允许跨域
  res.header("Access-Control-Allow-Origin", "*");
  // 解析文件类型
  const mimeType = mime.lookup(docxUrl) || 'application/octet-stream';
  // 读取文件名
  let fileName = path.basename(docxUrl);
  // 编码文件名
  const encodedFilename = encodeURIComponent(`${fileName}`);
  // 设置下载的文件名
  res.setHeader('Content-Disposition', `attachment; filename="${encodedFilename}"`);
  // 设置请求头
  // 此处需根据需要返回流格式去指定请求头
  res.writeHead(200, { 'Content-Type': mimeType, })
  // //创建可读流
  let readStream = fs.createReadStream(docxUrl)
  // // // 将读取的结果以管道pipe流的方式返回
  readStream.pipe(res)
})


app.listen(8899, () => {
  console.log('server running at http://127.0.0.1:8899')
})

